import { getUser, userLogin } from '@/api/user'
import storage from '@/utils/storage'

export default {
  // 开启命名空间
  namespaced: true,
  // token的持久化
  // 问题: token要存在本地，解决两个时机的问题
  // 1.什么时候读 ==> 从本地获取
  // 2.什么时候写 ==> 存到本地 ==。token要变化的时候写入

  state: {
    // 要储存的数据
    token: storage.get() || '',
    userinfo: ''
  },
  getters: {
  },
  mutations: {
    // 设置token
    updateToken (state, token) {
      state.token = token
      // 写入
      storage.set(token)
    },
    updateUserinfo (state, userinfo) {
      state.userinfo = userinfo
    }
  },
  actions: {
    // 发请求
    async login (context, { username, password }) {
      const res = await userLogin(username, password)
      console.log(res)
      context.commit('updateToken', res.data.token)
    },
    // 调接口，拿用户数据的action
    async getUserinfo (context) {
      const res = await getUser()
      // console.log(res)
      context.commit('updateUserinfo', res.data)
    }
  }
}
